import request from '@/utils/request';

const DEPT_BASE_URL = '/admin/area';

const DeptAPI = {
  /**
   * 分页查询区域
   *
   * @param queryParams 查询参数（可选）
   * @returns 部门树形表格数据
   */
  getList(queryParams?: any) {
    return request<any, DeptVO[]>({
      url: `${DEPT_BASE_URL}/page`,
      method: 'get',
      params: queryParams,
    });
  },

  /**
   * 查询全部区域
   * @returns
   */
  getListAll() {
    return request<any, DeptVO[]>({
      url: `${DEPT_BASE_URL}/list`,
      method: 'get',
    });
  },

  /**
   * 新增部门
   *
   * @param data 部门表单数据
   * @returns 请求结果
   */
  create(data: DeptVO) {
    return request({
      url: `${DEPT_BASE_URL}`,
      method: 'post',
      data: data,
    });
  },

  /**
   * 修改部门
   *
   * @param id 部门ID
   * @param data 部门表单数据
   * @returns 请求结果
   */
  update(data: DeptVO) {
    return request({
      url: `${DEPT_BASE_URL}/update`,
      method: 'post',
      data: data,
    });
  },

  /**
   * 删除部门
   *
   * @param ids 部门ID，多个以英文逗号(,)分隔
   * @returns 请求结果
   */
  deleteByIds(ids: string) {
    return request({
      url: `${DEPT_BASE_URL}/delete/${ids}`,
      method: 'post',
    });
  },
};

export default DeptAPI;

/** 部门类型 */
export interface DeptVO {
  /** 子部门 */
  /** 创建时间 */
  createTime?: string;
  /** 部门ID */
  id?: number;
  /** 部门名称 */
  name?: string;
  /** 部门编号 */
  code?: string;
  /** 修改时间 */
  updateTime?: string;
  /** 创建人 */
  createBy?: string;
  /** 修改人 */
  updateBy?: string;
}
